﻿using FluentNHibernate.Mapping;

namespace Neturion.Dados
{
    public class MapProtocolo : ClassMap<Protocolo>
    {
        public MapProtocolo()
        {
            Table("protocolos");
            Id(x => x.ProtocoloId);
            Map(x => x.Codigo).Unique().Index("idx_Codigo");
            Map(x => x.DataCadastro);
            References(x => x.ProtocoloPai, "ProtocoloPai_id").Not.LazyLoad();
            References(x => x.TipoProtocolo, "TipoProtocolo_id").Not.LazyLoad();
            References(x => x.Assunto, "Assunto_id").Not.LazyLoad();
            References(x => x.FuncionarioCadastro, "FuncionarioCadastro_id").Not.LazyLoad();
            References(x => x.FuncionarioDestino, "FuncionarioDestino_id").Not.LazyLoad();
            References(x => x.Interlocutor, "Interlocutor_id").Not.LazyLoad();
            References(x => x.Midia, "Midia_id").Not.LazyLoad();
            References(x => x.MotivoProtocolo, "MotivoProtocolo_id").Not.LazyLoad();
            References(x => x.NeturionLog, "NeturionLog_id").Not.LazyLoad();
            References(x => x.SetorDestino, "SetorDestino_id").Not.LazyLoad();
            References(x => x.SituacaoTramiteProtocolo, "SituacaoTramiteProtocolo_id").Not.LazyLoad();
            HasMany<ProtocoloProcedimento>(x => x.ListaProtocoloProcedimento)
                .Not.LazyLoad().Cascade.AllDeleteOrphan();
        }
    }
}